package process

import (
	"code.project.com/chatroom/common/message"
	"code.project.com/chatroom/server/utils"
	"encoding/json"
	"fmt"
	"net"
)

// 处理短消息相关的逻辑

type SmsProcess struct {
	//...  暂时不需要字段
}

func (s *SmsProcess)SendGroupMes(mes *message.Message) {

	// 遍历服务器端的 onlineUsers map
	// 将消息转发出去

	// 先取出 mes的内容SmsMes
	var smsMes message.SmsMes
	err := json.Unmarshal([]byte(mes.Data),&smsMes)
	if err != nil {
		fmt.Println("反序列化失败err=",err)
	}

	data, err := json.Marshal(mes)
	if err != nil {
		fmt.Println("json marshal err= ", err)
		return
	}

	for id, up := range userMgr.onlineUsers{
		if id == smsMes.UserId{
			continue  // 不要自己发送给自己
		}
		s.SendMesToEachOnlineUser(data,up.Conn)
	}
}

func (s *SmsProcess)SendMesToEachOnlineUser(date []byte, conn net.Conn)  {
	// 传建一个Transfer 实例 发送 data
	tf := utils.Transfer{
		Conn: conn,
	}
	err := tf.WritePkg(date)
	fmt.Println("转发函数 发送失败", err)
}

